import axios from "axios";
import router from './../router';
import { Message } from 'element-plus';

const request = axios.create({
    // 定义请求超时时间
    timeout: 10000,
    // 定义消息头 默认为json
    headers: {
        'Content-Type': 'application/json; charset=utf-8'
    },
    // 请求根路径
    baseURL: process.env.VUE_APP_BASE_API
});

// 定义请求拦截器
request.interceptors.request.use(
    config => {
        // 让每个请求携带 token
        config.headers['Admin-Token'] = 'token';
        return config
    },
    error => {
        return Promise.reject(error)
    }
);

// 定义响应拦截器
request.interceptors.response.use(
    response => {
        const res = response.data;
        // 当 token 失效时，清除 cookie 保存的 token 值，并跳转到登陆界面
        if (res && res.code === 401) {
            // removeToken()
            Message({
                message: res.message,
                type: 'error',
                duration: 5000
            });
            router.push({
                name: 'Login'
            })
        }
        // 未找到页面时，跳转到 404 页面
        if (res && res.code === 404) {
            router.push('/404')
        }
        return response
    },
    error => {
        return Promise.reject(error)
    }
);

export default request
